home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / phpMyAdmin / scripts / create-release.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2004-08-22  |  7KB  |  275 lines

  1. #!/bin/sh
  2. #
  3. # $Id: create-release.sh,v 2.11 2004/08/23 12:53:01 nijel Exp $
  4. #
  5. # 2003-08-23, nijel@users.sourceforge.net:
  6. # - support for creating snapshots outside sourceforge:
  7. #    * cvs server name can be read from environment variable cvsserver
  8. #    * do not change to directories as used on sourceforge if $2 is local
  9. #
  10. # 2003-08-13, nijel@users.sourceforge.net:
  11. # - config.default -> config.default.php
  12. #
  13. # 2004-08-09, lem9@users.sourceforge.net:
  14. # - remember to create a new bug tracking group
  15. #
  16. # 2004-06-07  rabus@users.sourceforge.net
  17. # - create backup config file
  18. #
  19. # 2004-04-29, lem9@users.sourceforge.net:
  20. # - keep only the previous cvs directory created
  21. #
  22. # 2004-04-16, lem9@users.sourceforge.net:
  23. # - daily snapshot when called with first parameter "snapshot"
  24. # - remove directory used for the checkout
  25. #
  26. # 2003-11-18, nijel@users.sourceforge.net:
  27. # - switch php3 -> php
  28. #
  29. # 2003-10-10, nijel@users.sourceforge.net:
  30. # - cvsserver set on just one place to ease testing
  31. # - echoes md5 sums to include on download page
  32. #
  33. # 2003-06-22, robbat2@users.sourceforge.net:
  34. # - Moved to using updatedocs.sh for updating documentation
  35. # - Make tarring faster by re-arranging ops
  36. #
  37. # 2003-01-17, rabus@users.sourceforge.net:
  38. # - Changed the CVS hostname to cvs1 because cvs1.sourceforge.net is now blocked
  39. #   for the SF shell servers, too. Note: The script now works on the SF shell
  40. #   servers ONLY!
  41. #
  42. # 2002-11-22, rabus@users.sourceforge.net:
  43. # - changed the CVS server dns to cvs1.sourceforge.net
  44. #   (cvs.phpmyadmin.sourceforge.net does not work at the SF shell anymore).
  45. #
  46. # 2002-10-03, rabus@users.sourceforge.net:
  47. # - more detailed instructions
  48. #
  49. # 2002-09-08, robbat2@users.sourceforge.net:
  50. # - Tweaked final instruction list
  51. #
  52. # 2002-06-17, lem9@users.sourceforge.net:
  53. # - I option to tar for bzip2 is deprecated, use j
  54. #
  55. # 2002-27-04, loic@phpmyadmin.net:
  56. # - added the cvs branch feature
  57. #
  58. # 2001-08-08, swix@users.sourceforge.net:
  59. # - created script
  60. # - added release todo list
  61. #
  62.  
  63. cvsserver=${cvsserver:-cvs1}
  64.  
  65. if [ $# == 0 ]
  66. then
  67.   echo "Usage: create-release.sh version from_branch"
  68.   echo "  (no spaces allowed!)"
  69.   echo ""
  70.   echo "Example: create-release.sh 2.2.7-rc1 v2_2_7-branch"
  71.   exit 65
  72. fi
  73.  
  74. if [ "$1" == "snapshot" ]
  75. then
  76.   branch=''
  77. elif [ "$#" == 2 ]
  78. then
  79.   branch="-r $2"
  80. fi
  81.  
  82. if [ $1 == "snapshot" ]
  83. then
  84.   mode="snapshot"
  85.   date_snapshot=`date +%Y%m%d-%H%M%S`
  86. fi
  87.  
  88. # Set target name
  89. if [ "$mode" != "snapshot" ]
  90. then
  91.  target=$1
  92. else
  93.  target=$date_snapshot
  94. fi
  95.  
  96.  
  97. if [ "$mode" != "snapshot" ]
  98. then
  99.  
  100.  cat <<END
  101.  
  102. Please ensure you have:
  103.   1. incremented rc count or version in CVS :
  104.      - in libraries/defines.lib.php the line
  105.           " define('PMA_VERSION', '$1'); "
  106.      - in Documentation.html the 2 lines
  107.           " <title>phpMyAdmin $1 - Documentation</title> "
  108.           " <h1>phpMyAdmin $1 Documentation</h1> "
  109.      - in translators.html
  110.      - in README
  111.   2. synchronized the language files:
  112.        cd lang
  113.        ./sync_lang.sh
  114.      and checked all language files are valid (use
  115.      the "./scripts/check_lang.php" script to do it).
  116.  
  117. Continue (y/n)?
  118. END
  119.  printf "\a"
  120.  read do_release
  121.  
  122.  if [ "$do_release" != 'y' ]; then
  123.    exit
  124.  fi
  125. fi
  126.  
  127. if [ "$mode" == "snapshot" -a "$2" != "local" ] ; then
  128. # Goto project dir
  129.     cd /home/groups/p/ph/phpmyadmin/htdocs
  130.  
  131. ## Move old cvs dir
  132. #if [ -e cvs ];
  133. #then
  134. #    mv cvs cvs-`date +%s`
  135. #fi
  136.  
  137. # Keep one previous version of the cvs directory
  138.     if [ -e cvs-prev ];
  139.     then
  140.         rm -rf cvs-prev
  141.     fi
  142.     mv cvs cvs-prev
  143. fi
  144.  
  145. # Do CVS checkout
  146. mkdir cvs
  147. cd cvs
  148.  
  149. if [ "$mode" != "snapshot" ]
  150. then
  151.  echo "Press [ENTER]!"
  152.  cvs -q -d:pserver:anonymous@$cvsserver:/cvsroot/phpmyadmin login
  153.  if [ $? -ne 0 ] ; then
  154.      echo "CVS login failed, bailing out"
  155.      exit 1
  156.  fi
  157. fi
  158.  
  159. cvs -q -z3 -d:pserver:anonymous@$cvsserver:/cvsroot/phpmyadmin co -P $branch phpMyAdmin
  160.  
  161. if [ $? -ne 0 ] ; then
  162.     echo "CVS checkout failed, bailing out"
  163.     exit 2
  164. fi
  165.  
  166. # Cleanup release dir
  167. LC_ALL=C date -u > phpMyAdmin/RELEASE-DATE-${target}
  168.  
  169. # Olivier asked to keep those in the cvs release, to allow testers to use
  170. # cvs update on it
  171. if [ "$mode" != "snapshot" ]
  172. then
  173.  find phpMyAdmin \( -name .cvsignore -o -name CVS \) -print0 | xargs -0 rm -rf
  174. fi
  175.  
  176. find phpMyAdmin -type d -print0 | xargs -0 chmod 755
  177. find phpMyAdmin -type f -print0 | xargs -0 chmod 644
  178. find phpMyAdmin \( -name '*.sh' -o -name '*.pl' \) -print0 | xargs -0 chmod 755
  179.  
  180. # Building Documentation.txt
  181. lynx --dont_wrap_pre --nolist --dump phpMyAdmin/Documentation.html > phpMyAdmin/Documentation.txt
  182.  
  183. # Creating a backup config.inc.php
  184. cp phpMyAdmin/config.inc.php phpMyAdmin/config.default.php
  185.  
  186. # Renaming directory
  187. mv phpMyAdmin phpMyAdmin-$target
  188.  
  189. # Building distribution kits
  190. zip -9 -r phpMyAdmin-${target}.zip phpMyAdmin-${target}
  191. tar cvf phpMyAdmin-${target}.tar phpMyAdmin-${target}
  192. bzip2 -9kv phpMyAdmin-${target}.tar
  193. gzip -9v phpMyAdmin-${target}.tar
  194.  
  195. # Cleanup
  196. rm -rf phpMyAdmin-${target}
  197.  
  198. if [ "$mode" != "snapshot" ]
  199. then
  200.  
  201.  
  202. echo ""
  203. echo ""
  204. echo ""
  205. echo "Files:"
  206. echo "------"
  207.  
  208. ls -la *.gz *.zip *.bz2
  209.  
  210. echo
  211. echo "MD5 sums:"
  212. echo "--------"
  213.  
  214. md5sum *.{gz,zip,bz2} | sed "s/\([^ ]*\)[ ]*\([^ ]*\)/\$md5sum['\2'] = '\1';/"
  215.  
  216. echo
  217. echo "Sizes:"
  218. echo "------"
  219.  
  220. ls -l --block-size=k *.{gz,zip,bz2} | sed -r "s/[a-z-]+[[:space:]]+[0-9]+[[:space:]]+[^[:space:]]+[[:space:]]+[^[:space:]]+[[:space:]]+([0-9]*)K.*[[:space:]]([^[:space:]]+)\$/\$size['\2'] = \1;/"
  221.  
  222. echo
  223. echo "Add these to /home/groups/p/ph/phpmyadmin/htdocs/home_page/files.inc.php on sf"
  224.  
  225. cat <<END
  226.  
  227.  
  228. Todo now:
  229. ---------
  230.  1. tag the cvs tree with the new revision number for a plain release or a
  231.     release candidate
  232.  2. upload the files to SF:
  233.         ftp upload.sourceforge.net
  234.         cd incoming
  235.         binary
  236.         mput cvs/*.gz *.zip *.bz2
  237.  3. add files to SF files page (cut and paste changelog since last release)
  238.  4. add SF news item to phpMyAdmin project
  239.  5. update web page:
  240.         - add MD5s and file sizes to /home/groups/p/ph/phpmyadmin/htdocs/home_page/files.inc.php
  241.         - add release to /home/groups/p/ph/phpmyadmin/htdocs/home_page/config.inc.php
  242.  6. announce release on freshmeat (http://freshmeat.net/projects/phpmyadmin/)
  243.  7. send a short mail (with list of major changes) to
  244.         phpmyadmin-devel@lists.sourceforge.net
  245.         phpmyadmin-news@lists.sourceforge.net
  246.         phpmyadmin-users@lists.sourceforge.net
  247.  8. increment rc count or version in CVS :
  248.         - in libraries/defines.lib.php the line
  249.               " define('PHPMYADMIN_VERSION', '2.2.2-rc1'); "
  250.         - in Documentation.html the 2 lines
  251.               " <title>phpMyAdmin 2.2.2-rc1 - Documentation</title> "
  252.               " <h1>phpMyAdmin 2.2.2-rc1 Documentation</h1> "
  253.         - in translators.html
  254.  
  255.  9. add a group for bug tracking this new version, at
  256.     https://sourceforge.net/tracker/admin/index.php?group_id=23067&atid=377408&add_group=1
  257.  
  258. 10. the end :-)
  259.  
  260. END
  261.  
  262. fi
  263.  
  264. if [ "$mode" == "snapshot" -a "$2" != "local" ] ; then
  265.     cd ..
  266.     find cvs -type d -print0 | xargs -0 chmod 775
  267.     find cvs -type f -print0 | xargs -0 chmod 664
  268. fi
  269.  
  270. # Removed due to not needed thanks to clever scripting by Robbat2
  271. # 9. update the demo subdirectory:
  272. #        - in htdocs, cvs update phpMyAdmin
  273. #        - and don't forget to give write rights for the updated scripts to the
  274. #          whole group
  275.